package com.huize.zhike.framework.common.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Excel字段注解
 *
 * @author tianyuliang
 * @version $Id: ExcelField.java, v0.1 2019/11/14
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface ExcelField {

    /**
     * 序号
     *
     * @return
     */
    int order() default 0;

    /**
     * 是否忽略当前字段(针对字段转化的特殊情况)
     *
     * @return
     */
    boolean ignore() default false;

    /**
     * 单元格 名称
     *
     * @return
     */
    String name() default "";

    /**
     * 单元格宽度(按字符个数计算，列宽单位为一个字符宽度的1/256，每列可以显示的最大字符数为255)
     * <p>解决中文在单元格宽度失效的问题</p>
     *
     * @return 返回结果
     */
    int columnWidth() default 0;

    /**
     * 导入列 标记
     *
     * @return
     */
    boolean in() default true;

    /**
     * 导出列 标记
     *
     * @return
     */
    boolean out() default true;

    /**
     * 默认北京时区
     *
     * @return
     */
    String timezone() default "GMT+8";

    /**
     * 是否为时间字段（默认不是）
     *
     * @return
     */
    boolean isDateTime() default false;

    /**
     * 默认时间格式
     *
     * @return
     */
    String timePattern() default "";

}
